﻿using System;


namespace MyLib
{
    //类的成员访问级别 是 以类的访问级别为上限的

    //internal class Vehicle
    //{
    //    public string Owner { get; set; }
    //}

    public class Vehicle
    {
        public string Owner { get; set; }

        //此时为Private  只能在Vehicle类体中操作访问  无论继承还是实例化都无法访问此Private的Price字段
        string Price { get; set; } //要是不声明修饰符 此时也是private字段

        private int _rpm { get; set; } //语法糖 _变量名  说明这个是实例字段和私有属性

        private int _fuel;

        public int Speed { get { return _rpm / 100; } set { } }

        public void Refuel()
        {
            this._fuel = 100;
        }

        //受保护的方法 
        protected void Burn(int n)
        {
            _fuel--;
            _rpm += 1000;
        }
        public void Accelerate()
        {
            _rpm += 100;
        }

        public void SlowAccelerate()
        {
            Console.WriteLine("{1}",this._rpm);

        }

    }

    //此时类是基于Vehicle的 Car 也是 一个Vehicle类 所以内部的internal属性是可以访问的  
    //虽然Private 无法访问 但是类的继承概念来讲 Price 已经被继承  类的全面继承(字段成员 属性  方法   事件)
    public class Car : Vehicle
    {
        public void ShowOwner()
        {
            this.Owner = "CheChe";
            Console.WriteLine(base.Owner);
            //Console.WriteLine(this.Price);
            Console.WriteLine(this.Speed);
        }
    }


}
